package utils

import (
	"bytes"
	"log"
	"os"
)

/**
readFile 工具函数
*/
func ReadFile(fileName string, cb func(*os.File)) {
	f, err := os.Open(fileName)
	if err != nil {
		log.Println(err)
	} else {
		cb(f)
		f.Close()
	}
}

func GetLocateByHash(hash string, stashDir string) string {
	return stashDir + "/" + hash[0:2] + "/" + hash[2:38]
}

func ReadStashFile(fileMark string, stashDir string) bytes.Buffer {
	var buf bytes.Buffer
	ReadFile(GetLocateByHash(fileMark, stashDir), func(file *os.File) {
		//prefix := make([]byte, 5)
		//file.Read(prefix)
		// 去除1byte文件类型3byte文件长度1byte分隔符，后面再处理
		file.Seek(5, 0)
		_, err := buf.ReadFrom(file)
		if err != nil {
			log.Fatalln(err)
		}
	})
	return buf
}
